A Scalable Concurrent malloc(3) Implementation for FreeBSD
نویسنده
چکیده
The FreeBSD project has been engaged in ongoing work to provide scalable support for multi-processor computer systems since version 5. Sufficient progress has been made that the C library’s malloc(3) memory allocator is now a potential bottleneck for multi-threaded applications running on multiprocessor systems. In this paper, I present a new memory allocator that builds on the state of the art to provide scalable concurrent allocation for applications. Benchmarks indicate that with this allocator, memory allocation for multi-threaded applications scales well as the number of processors increases. At the same time, single-threaded allocation performance is similar to the previous allocator implementation.
منابع مشابه
malloc(3) Revisited
malloc (3) is one of the oldest parts of the C language environment and not surprisingly the world has changed a bit since it was first conceived. The fact that most UNIX kernels have changed from swap/segment to virtual memory/page based memory management has not been sufficiently reflected in the implementations of the malloc/free API. Anew implementation was designed, written, tested and ben...
متن کاملExtensions to FreeBSD Datacenter TCP for Incremental Deployment Support
Datacenter TCP (DCTCP) achieves low latencies for short flows while maintaining high throughputs for concurrent bulk transfers, but requires changes to both endpoints, which presents a deployment challenge. This paper presents extensions to DCTCP that enables one-sided deployment when peers implement standard TCP/ECN functionality. This makes DCTCP significantly easier to deploy incrementally. ...
متن کاملSCTP in Go
This paper describes a successful attempt to combine two relatively new technologies: Stream Control Transmission Protocol (SCTP) and the programming language Go, achieved by extending the existing Go network library with SCTP. SCTP is a reliable, message-oriented transport layer protocol, similar to TCP and UDP. It offers sequenced delivery of messages over multiple streams, network fault tole...
متن کاملEager Acquisition
In most operating systems, operations such as dynamic memory allocation can be very expensive. The time it takes for memory allocations via operations like "malloc" depends on the implementation of the operations. If the telecommunication application is supposed to run on a non-real-time operating system, the time to execute malloc will vary even if the same size of memory is to be acquired. Ru...
متن کاملA Stall‐Free Real‐Time Garbage Collector for FPGAs
Programmers are turning to diverse architectures such as reconfigurable hardware (FPGAs) to achieve performance. But such systems are far more complex to use than conventional CPUs. The continued exponential increase in transistors, combined with the desire to implement ever more sophisticated algorithms, makes it imperative that such systems be programmed at much higher levels of abstraction. ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006